<?php
/**
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; version 3 of the License.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
*/

/**
 * Superglobals interface class.
 * @package Core
 * @subpackage HTTP.Superglobals
 * @author pilou
 */
namespace Core\HTTP\Superglobal;

interface ISuperglobal
{
	/**
	 * Facotry method for Superglobals
	 * @access public
	 * @access static
	 * @return ISuperglobal
	 */
	public static function getInstance();
	
	/*
	 * Get a value
	 * @access public
	 * @param string $key
	 * @return mixed
	 */
	public function __get($key);

	/**
	 * Set a value
	 * @access public
	 * @param string $name
	 * @param array $value
	 * @return void
	 */
	public function __set($key, $value);

	/**
	 * Export object as an array
	 * @access public
	 * @return array
	 */
	public function toArray();
}
?>